---@meta _

---@class Gratuity-2.0 可提供高效、功能齐全的工具提示式显示。
---[文档](https://web.archive.org/web/20070805031053/http://www.wowace.com/wiki/Gratuity-2.0)
---GameTooltip https://warcraft.wiki.gg/wiki/UIOBJECT_GameTooltip
-- GameTooltip方法 https://warcraft.wiki.gg/wiki/Special:PrefixIndex/API_GameTooltip
-- GameTooltip模板 https://warcraft.wiki.gg/wiki/XML/GameTooltip
local Gratuity = {}

function Gratuity:SetBagItem() end

---[文档](https://warcraft.wiki.gg/wiki/API_GameTooltip_SetAction)
---置提示动作插槽
---@param slot number 用于加载工具提示的作槽。
function Gratuity:SetAction(slot) end
function Gratuity:SetAuctionItem() end
function Gratuity:SetAuctionSellItem() end
function Gratuity:SetBuybackItem() end
function Gratuity:SetCraftItem() end
function Gratuity:SetCraftSpell() end
function Gratuity:SetHyperlink() end
function Gratuity:SetInboxItem() end

---[文档](https://warcraft.wiki.gg/wiki/API_GameTooltip_SetInventoryItem?oldid=2609972)
---置提示物品插槽
---@param unit string 单位
---@param slot number 物品插槽
---@param nameOnly? boolean 是否仅显示名称
function Gratuity:SetInventoryItem(unit, slot, nameOnly) end
function Gratuity:SetLootItem() end
function Gratuity:SetLootRollItem() end
function Gratuity:SetMerchantItem() end
function Gratuity:SetPetAction() end

---[文档](https://warcraft.wiki.gg/wiki/API_GameTooltip_SetPlayerBuff)
---置提示玩家增益
---@param buffIndex number 增益索引
function Gratuity:SetPlayerBuff(buffIndex) end

function Gratuity:SetQuestItem() end
function Gratuity:SetQuestLogItem() end
function Gratuity:SetQuestRewardSpell() end
function Gratuity:SetSendMailItem() end
function Gratuity:SetShapeshift() end

---[文档](https://warcraft.wiki.gg/wiki/API_GameTooltip_SetSpell)
---置提示法术
---@param spellBookId number 法术ID
---@param bookType? string 书籍类型
function Gratuity:SetSpell(spellBookId, bookType) end

function Gratuity:SetTalent() end
function Gratuity:SetTrackingSpell() end
function Gratuity:SetTradePlayerItem() end
function Gratuity:SetTradeSkillItem() end
function Gratuity:SetTradeTargetItem() end
function Gratuity:SetTrainerService() end
function Gratuity:SetUnit() end

---[文档](https://warcraft.wiki.gg/wiki/API_GameTooltip_SetUnitBuff?oldid=2629642)
---置提示单位增益
---@param unitId string 单位ID
---@param buffIndex number 增益索引
---@param raidFilter? any 团队筛选
function Gratuity:SetUnitBuff(unitId, buffIndex, raidFilter) end

---[文档](https://warcraft.wiki.gg/wiki/API_GameTooltip_SetUnitDebuff?oldid=2629643)
---置提示单位减益
---@param unitId string 单位ID
---@param buffIndex number 增益索引
---@param raidFilter? any 团队筛选
function Gratuity:SetUnitDebuff(unitId, buffIndex, raidFilter) end

---初始化`Compost-2.0`库
function Gratuity:InitCompost() end

---创建工具提示
function Gratuity:CreateTooltip() end

---完全清除提示信息，而不是像暴雪那种蹩脚的"左擦右藏"惯用操作
function Gratuity:Erase() end

---取行数
---@param endln? number 结束行号；传递如果行数超过将使用该值
---@return number num 行数
function Gratuity:NumLines(endln) end

---如果在工具提示中找到文本，则返回string.find的结果
---@param txt string 欲查找文本
---@param startln? number 欲检索开始行号，默认为1
---@param endln? number 欲检索结束行号，默认为30
---@param ignoreleft? boolean 忽略左文本
---@param ignoreright? boolean 忽略右文本
---@param exact? boolean 比较将与默认行为完全匹配
---@return number? startpos 开始位置
---@return number? endpos 结束位置
---@return ... match
function Gratuity:Find(txt, startln, endln, ignoreleft, ignoreright, exact) end

---多次调用查找。
---@param startln number 要检查的第一条工具提示行，默认为1
---@param endln number 要测试的最后一行，默认为30
---@param ignoreleft? boolean 忽略左文本
---@param ignoreright? boolean 忽略右文本
---@param t1 string 要查找的文本字符串
---@param ... string 要查找的文本字符串
function Gratuity:MultiFind(startln, endln, ignoreleft, ignoreright, t1, ...) end

---如果在工具提示上找到文本，则返回deformat:deformat的结果
---@param txt string 欲查找文本
---@param startln? number 欲检索开始行号，默认为1
---@param endln? number 欲检索结束行号，默认为30
---@param ignoreleft? boolean 忽略左文本
---@param ignoreright? boolean 忽略右文本
function Gratuity:FindDeformat(txt, startln, endln, ignoreleft, ignoreright) end

---返回从工具提示中提取的字符串表
---@param startln? number 欲检索开始行号，默认为1
---@param endln? number 欲检索结束行号，默认为30
---@param ignoreleft? boolean 忽略左文本
---@param ignoreright? boolean 忽略右文本
---@return table? text 文本
function Gratuity:GetText(startln, endln, ignoreleft, ignoreright) end

---返回特定行文本
---@param line number 欲检索行号
---@param getright? boolean 如果为`true`则仅返回右边，缺省为`false`
---@return string? text 文本
---@return string? righttext? 文本
function Gratuity:GetLine(line, getright) end

---创建设置方法
function Gratuity:CreateSetMethods() end
